import pygame
from pygame.sprite import Sprite


class Alien(Sprite):
    """表⽰单个外星⼈的类"""

    def __init__(self, ai_game):
        """初始化外星⼈并设置其起始位置"""
        super().__init__()
        self.screen = ai_game.screen
        self.settings = ai_game.settings
        # 加载外星⼈图像并设置其 rect 属性
        self.image = pygame.image.load("alien_invasion/images/alien.bmp")
        self.rect = self.image.get_rect()
        # 每个外星⼈最初都在屏幕的左上⾓附近
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        # 存储外星⼈的精确⽔平位置
        self.x = float(self.rect.x)
        self.y = float(self.rect.y)

    def update(self):
        """向右移动外星⼈"""
        self.x += self.settings.alien_speed * self.settings.fleet_direction
        self.rect.x = self.x

    def check_edges(self):
        """如果外星⼈位于屏幕边缘，就返回 True"""
        screen_rect = self.screen.get_rect()
        return (self.rect.right >= screen_rect.right) or (self.rect.left <= 0)
